package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.HabilidadFacade;
import sv.com.bolsaTrabajo.model.entities.Habilidad;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class HabilidadMB extends ManejadorAccion {

    @EJB
    private HabilidadFacade habilidadFacade;
    private Habilidad habilidad;
    private List<Habilidad> habilidades;

    /**
     * Constructor
     */
    public HabilidadMB() {
        limpiarHabilidad();
        habilidad = new Habilidad();
    }

    public void limpiarHabilidad() {
        setHabilidad(new Habilidad());
    }

    public List<Habilidad> getHabilidades() {
        habilidades = habilidadFacade.obtenerTodos();
        return habilidades;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Habilidad");
            getHabilidad().setFechaMod(new Date());

            if (habilidad.getIdHabilidad() == null) {
                habilidadFacade.crear(habilidad);
                lanzarMensajeInformacion("Exito", "Habilidad guardada correctamente");
            } else {
                habilidadFacade.modificar(habilidad);
                lanzarMensajeInformacion("Exito", "Habilidad modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmHabilidad");
            RequestContext.getCurrentInstance().execute("WVDialogHabilidad.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Habilidad", e);
        }
    }

    public void modificarEntidad(Habilidad modHabilidad) {
        try {
            this.habilidad = modHabilidad;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Habilidad ", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public HabilidadFacade getHabilidadFacade() {
        return habilidadFacade;
    }

    public void setHabilidadFacade(HabilidadFacade habilidadFacade) {
        this.habilidadFacade = habilidadFacade;
    }

    public Habilidad getHabilidad() {
        return habilidad;
    }

    public void setHabilidad(Habilidad habilidad) {
        this.habilidad = habilidad;
    }

}
